package com.zmn.uac.model.bo.user;

import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 类描述：
 *
 * @author xujie
 * @since 2021/05/19 15:18
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserThirdInfoRegisterBO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 店铺
     */
    @NotNull(message = "店铺不能为空")
    private Integer shopId;

    /**
     * 平台
     */
    @NotNull(message = "平台不能为空")
    private Integer plat;

    /**
     * 姓名
     */
    private String realname;

    /**
     * 用户名
     */
    private String username;

    /**
     * 用户类型：1普通用户，2企业客户
     */
    @NotNull(message = "用户类型不能为空")
    private Integer type;

    /**
     * 性别：1男，2女，3未知
     */
    @NotNull(message = "性别不能为空")
    private Integer gender;

    /**
     * 第三方平台用户Id
     */
    @NotNull(message = "第三方平台用户Id不能为空")
    private String openId;

    /**
     * 第三方公众平台用户Id
     * 如果没有unionId则同openId
     */
    @NotNull(message = "第三方公众平台用户Id不能为空")
    private String unionId;

    /**
     * 渠道Id
     */
    @NotNull(message = "渠道不能为空")
    private Integer channelId;

    /**
     * 渠道名称
     */
    @NotNull(message = "渠道名称不能为空")
    private String channelName;

    /**
     * 头像地址
     */
    private String avatarSrc;

    /**
     * 来源参数 (eg.微信临时二维码参数)
     */
    private String sourceParam;

    @ApiModelProperty(value = "昵称")
    protected String nickName;

    @ApiModelProperty(value = "年龄")
    protected Integer age;

    @ApiModelProperty(value = "国家")
    protected String country;

    @ApiModelProperty(value = "省份")
    protected String province;

    @ApiModelProperty(value = "城市")
    protected String city;


    @ApiModelProperty(value = "入口")
    @NotNull(message = "入口不能为null")
    protected Integer entrance;

    @ApiModelProperty("用户ID")
    private Long userId;

    @ApiModelProperty(value = "appId")
    @NotNull(message = "第三方appId不能为null")
    private String appId;

    @ApiModelProperty(value = "appName")
    @NotNull(message = "appName不能为null")
    private String appName;


    @ApiModelProperty(value = "语言")
    private String language;

    @ApiModelProperty(value = "用户关注时间")
    private String subscribeTime;

    @ApiModelProperty(value = "公众号运营者对粉丝的备注")
    private String remark;

    @ApiModelProperty(value = "用户所在的分组ID")
    private String groupId;

    @ApiModelProperty(value = "用户被打上的标签ID列表")
    private List<Integer> tagIds;

    @ApiModelProperty(value = "用户被打上的标签名称列表(逗号分隔)")
    private String tagNames;

    @ApiModelProperty(value = "三方用户关注的渠道来源")
    private String subscribeScene;

    @ApiModelProperty(value = "二维码扫码场景（开发者自定义）")
    private String qrScene;

    @ApiModelProperty(value = "二维码扫码场景描述（开发者自定义）")
    private String qrSceneStr;

    @ApiModelProperty(value = "关注状态,1未关注,2已关注")
    private Integer subscribe;

    @ApiModelProperty(value = "app密钥")
    private String appSecret;

    @ApiModelProperty(value = "手机号")
    private String mobile;

    @Override
    public String toString() {
        return "UserThirdInfoRegisterBO" + JSONObject.toJSONString(this);
    }

}
